home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
(A)TB
/
(A)TBI.ADF
/
FixDisk
/
FixDisk.doc
< prev
next >
Wrap
Text File
|
1989-09-12
|
12KB
|
270 lines
FixDisk V1.2
(C) Copyright Werner Guenther 1990
Freeware
USE THIS PROGRAM AT YOUR OWN RISK
FixDisk is a program to recover as much as possible from a
defective disk. I don't claim it is better than Diskdoctor or
DiskSalv, but it has some features the others don't have:
It can recover damaged (unreadable) tracks. It has functions to
check file integrity, to check the directory structure and functions
to undelete, copy or show (even defective) files and fix corrupted
directory pointers.
A damaged file structure can be recovered copying the data file by
file to another disk (a la DiskSalv) or can be fixed in place (like
Diskdoctor). Everything can be selected with an intuition interface,
so users can determine what action should be take place.
Now the bad news: The program does not keep track of loose blocks,
those files without a file header, as DiskSalv does.
It doesn't process partitions > 48Mb.
USAGE
After starting FixDisk from CLI or Workbench, you will see a set of
gadgets with the available drives on the top of the window. Choose
the desired drive by clicking its gadget. If the chosen drive is a
3.5" or a 5.25" drive, you will be asked to insert a disk. Now the
program starts to read in the disk, cylinder by cylinder, searching
for file/directory headers. This may take a while, so be patient.
You may be told of read errors and other messages at this point:
- Block 0 has to start with `DOS' or `KICK'. If it does not, you are
asked if you want to fix it.
- The program couldn't find the root block and FixDisk wants to
build a new one.
- The disk isn't validated and the program will validate it.
- There is no root block and no file header on the disk, meaning the
disk is probably a custom disk or the Kickstart disk. FixDisk won't
check anything and won't let you check, change or fix anything except
read errors.
You may press break (CTRL-C) if you want to abort this operation.
When the disk has been examined, you'll get a file requester on the
left half of the window. The first column shows the key, the block
number where the file header has been found, followed by DEL for
deleted files or '-->' followed by the file name. Red (color 3)
entries are directories. Click on the file name to select it or
shift-click for multiple selections. Double-click a directory to
enter the directory.
The right half of the window is filled with 17 gadgets. Some of
them are disabled at startup. These gadgets will write onto the disk.
To enable them, choose "Write enable" from the Miscellaneous menu.
THE GADGETS:
Scan mode - ALL
Tells FixDisk to read the entire disk, cylinder by cylinder. This
is the safest way of operation and makes sure you get any fileheader
on the disk. It is used if the disk is heavily damaged, or if you
want to undelete/recover all deleted files.
Scan mode - Directory
This is much faster than the previous one. It builds up the disk
structure by following the hash chains, i.e. by reading the
directory. Use this one for smaller problems like a 'key already set'
error.
Scan mode - Deleted
Similar to 'Scan mode - All' but somewhat optimised to find
fileheaders. You may enter a filename to search for, if you wish.
Scan mode - Specify
Used to find deleted files. Lets you specify which cylinders to
scan, in case you already know where the fileheader was. The usual
trick is to type 'list keys' and to look where other files with the
same date are stored and to scan the cylinders in the vicinity.
Directory - Parent
This gadget is part of the file requester. The requester will show
files from the parent directory.
Directory - Root
Same as above, but steps to the root directory.
Show - Selected
Shows a file in Hex or ASCII. Like all other commands, the file is
processed without using DOS, but each sector (block) is read, checked
and displayed. It works just as "Copy" does (see below), so you can
use this function to see what exactly can be recovered from a
defective file. If the file is on a 'Standard Filesystem' (non FFS)
disk, you will be asked from where the program should take the file
links. Each block that belongs to a file is listed in the file header
block and in one or more "file list blocks" if the file is too large.
On the "Standard Filesystem," each data block has a pointer to the
next block belonging to the same file.
So there are two ways to determine how the file is built: using the
links listed in the file header, or using the inter-block links. It
is much safer if you select the file header links, since if only one
block is wrong, you'll get rubbish using the inter-block links.
Check Files - Selected
This function checks the selected files. With the standard
filesystem it is easy to determine if a file is good or defective, as
each data block has a checksum, a pointer to the file header, pointer
to the next block, etc. This is not the case with the FFS and there
is no way to determine if a given data block really belongs to that
file. So even if the file passes the test, it may still be corrupt.
Check Files - Deleted Checks
only deleted files, so you can see which one can be undeleted.
Check Files - All
Checks all files.
Undelete Files - Selected
This function first calls "check file." If the file seems to be OK,
the file header is inserted into the hash chain of its parent
directory and the bitmap is updated, but the "Bitmap Flag" changes to
FALSE, just to make sure the disk is validated after this operation.
Undelete Files - All
Tries to undelete all deleted files.
Copy Files - Selected
Works like "Show" (see above). You'll be asked to enter an output
path/directory. If the directory fills, you may enter a new path. If
a given file already exists in the destination directory, the program
will append ".2" to the filename (if .2 exists too, you'll get .2.2.
(Don't tell me this is dumb, I know that already.) As with "Check
File," you may get some error messages while the program is working.
If a block doesn't seem to belong to a given file, you'll be asked to
"SKIP IGNORE ABORT." Skip means the damaged block won't be copied,
Ignore the block will be copied, no matter what is on that block,
Abort leaves "Copy Files." Protection bits are preserved, dates are
not.
Copy Files - All
Copies the entire disk, trying to recover as much as possible.
Wipe Files - Selected
This function clears the file header of a deleted file. Utilities
like Diskdoctor and DiskSalv will try to recover all files, even if
they have been deleted. If you don't want some files to pop up again
using one of the programs above, you may use this function. Be
warned: After this operation you'll have to use a
disk-monitor/sector-editor to get the data back.
Wipe Files - Deleted
Purges all deleted files.
Delete - Selected
Deletes a file, i.e. the file header will be taken out of its hash
chain, and the bitmap updated. The 'Bitmap Flag' will be set to FALSE
as in "Undelete" (see above). This function even works if the DOS
delete does return an error.
Delete - Faulty
Checks all files and deletes those with errors. The program may ask
you before deleting a file, if you wish.
Info - Device
Returns some information about the selected device.
Validate - Disk
This is not the Amiga validator but my own. The main difference
between them is that this one tries to repair the disk structure. You
may get some error reports: loops in a hash chain, wrong or
unreadable file headers, checksum errors or "key already set," two
files claiming to own the same data block. You will be informed about
any error and prompted before FixDisk attempts to fix it.
Rename - Selected
Rename a selected file.
Recover - Track
Tries to recover tracks with read/write errors on floppy disks. It
uses the RAWREAD command from the trackdisk.device and therefore
works with the trackdisk.device only. It will RAWREAD the track into
a buffer, search the syncs and decode the sectors. If a sector sync
is missing, the program tries to determine where the sector has to
start. When the track has been decoded, you'll get a window
displaying: the number of the sector (1-11), the first four longwords
of that sector, if the checksum is OK or BAD, and if that block is
ALLOCated or FREE. If an entry is red (color 3), the sector didn't
have a sync. If instead of the first few bytes you get "unreadable,"
the program couldn't even work out where the sector should have been.
If you are not satisfied with the result, you may click RETRY to
restart the procedure and usually get a different result. If you
think the result is good enough, click on WRITE. This will format the
track and write those sectors back. If the track has a hard error,
i.e. a damaged surface, it may happen that the track can't be
formatted. Click RETRY several times and the defective part of the
track may fall into the gap at some point. If this doesn't seem to
work, select SAVE from the requester and save the track to a file.
Now exit FixDisk, backup the disk and restart FixDisk using the
backup. Select Recover-Track and click LOAD from the requester,
filling the buffer with the data from the original disk. After
selecting WRITE again, the track should be recovered.
Gadgets on the "Recover - Track" requester:
RETRY
read and decode the same track again.
WRITE
reformat the track an write the data back to the disk.
NEXT / NEW
FixDisk builds a list of unreadable tracks. "NEXT" steps to the
next damaged track on the list. If the list is empty, the gadget
will display "NEW" instead.
FIND
Searches a pattern anywhere in the buffer. Useful if you know the
first few bytes of a sector (which is quite easy to determine on
a standard file system disk).
SAVE
Save the decoded track to a file.
LOAD
Read a decoded track from a file into the buffer.
CANCEL
Quit 'Recover - Track' and return to FixDisk's main window.
The window displaying the sectors has several gadgets too:
LEFT ARROW
If a sector sync mark is missing, FixDisk will compute the
position of that sector within the buffer and decode the sector
from this point. You may manually correct this position using the
arrow gadgets. The left arrow will shift the starting position
one BIT (not byte) to the left.
RIGHT ARROW
Shift sector one bit to the right.
NUMERIC STRING GADGET
the string gadget will display the position of the sector
relative to the FixDisk assumption.
SECTOR DATA
clicking onto the sector data area will 'lock' the sector, i.e.
will prevent FixDisk from redecoding this sector when using
RETRY from the requester.
THE MENU
There are actually only two menu items:
Ignore Readerrors
Usually you get a requester asking RETRY IGNORE if an error occurs.
This may be annoying if the disk has many defective tracks. This item
will stop that requester popping up. It has also a second function.
If you are using the "Copy" function, the program will stop every
time a file seems to be damaged and ask what action should be taken.
With "Ignore readerrors" on, errors are just listed, but the program
will act as if you have chosen IGNORE.
Write Enable
Enables those gadgets that will write onto the disk.
That's all. Well, almost. The program has about 80 requesters, some
of them have not been explained, but they should be self-explanatory.
Send flames, bug reports, requests to
G35@DHDURZ1.BITNET
Werner Guenther
Wingertspfad 12
D 6900 Heidelberg (FRG)